实战PyQt5: 060

您所在的位置:网站首页 python 输入框 实战PyQt5: 060

实战PyQt5: 060

2023-09-28 18:29| 来源: 网络整理| 查看: 265

QInputDialog简介

在GUI应用中,经常有一些简单的输入信息需要交互,这时候可以使用QInputDialog来快速完成我们的工作,而不必创建一个新的对话框来实现。

QInputDialog控件是一个标准对话框,由一个文本框和两个按钮(ok和cancel)组成。当用户单击ok或enter键后,在父窗口可以收集通过QInputDialog控件输入的信息。在QInpuTDialog控件中可以输入数字,字符串或列表中的选项。

QInputDialog常用方法有:

getInt(): 从控件中获得标准整数输入;getDouble(): 从控件中获得标准浮点数输入;getText(): 从控件中获得标准字符串的输入;getItem(): 从控件中获得列表里的选项输入;getMultiLineText(): 从控件中获得多行文本输入。

QInputDialog常用信号:

textValueChanged: 当输入文本发生改变时,发射该信号;textValueSelected: 当输入文本被选中时,发射该信号;intValueChanged: 当输入的整数值发生改变时,发射该信号;intValueSelected: 当选中整数值时,发射该信号;doubleValueChanged: 当输入的浮点数发生改变时,发生该信号;doubleValueSelected: 当选中浮点数值时,发射该信号。

QInputDialog类继承关系:

实战PyQt5: 060-输入对话框QInputDialog

 

测试QInputDialog

创建文件qinputdialog.py, 分别测试QInputDialog的四个方法:getItem, getText, getInt和getDouble。完整代码如下:

import sys from PyQt5 import QtCore, QtGui, QtWidgets #from PyQt5.QtCore import Qt from PyQt5.QtWidgets import (QApplication, QWidget, QInputDialog, QFormLayout,                              QPushButton, QLineEdit)   class DemoInputDialog(QWidget):     def __init__(self, parent=None):         super(DemoInputDialog, self).__init__(parent)                      # 设置窗口标题         self.setWindowTitle('实战PyQt5: QInputDialog Demo!')               # 设置窗口大小         self.resize(320, 240)                self.initUi()              def initUi(self):         #创建一个表单布局         mainLayout = QFormLayout(self)         #设置内部控件之间的间隔         mainLayout.setSpacing(16)                  min_width = 120                  btnGetSel = QPushButton('列表选择输入对话框', self)         btnGetSel.setMinimumWidth(min_width)         btnGetSel.clicked.connect(self.onGetSelItem)         self.infoSel = QLineEdit(self)         self.infoSel.setReadOnly(True)         mainLayout.addRow(btnGetSel, self.infoSel)                  btnGetTxt = QPushButton('字符串输入对话框', self)         btnGetTxt.setMinimumWidth(min_width)         btnGetTxt.clicked.connect(self.onGetText)         self.infoTxt = QLineEdit(self)         self.infoTxt.setReadOnly(True)         mainLayout.addRow(btnGetTxt, self.infoTxt)                  btnGetInt = QPushButton('整数输入对话框')         btnGetInt.setMinimumWidth(min_width)         btnGetInt.clicked.connect(self.onGetInt)          self.infoInt = QLineEdit(self)         self.infoInt.setReadOnly(True)         mainLayout.addRow(btnGetInt, self.infoInt)                  btnGetDbl = QPushButton('浮点数输入对话框')         btnGetDbl.setMinimumWidth(min_width)         btnGetDbl.clicked.connect(self.onGetDouble)         self.infoDbl = QLineEdit(self)         self.infoDbl.setReadOnly(True)         mainLayout.addRow(btnGetDbl, self.infoDbl)                  self.setLayout(mainLayout)              def onGetSelItem(self):         #创建元组并并定义初始值         items = ('C', 'C++', 'C#', 'Java', 'Java Script', 'Go', 'Python')         #获取item输入的值,以及ok键的点击与否(True 或False)         item,ok=QInputDialog.getItem(self,"选择输入对话框",'语言列表',items,0,False)         if ok and item:             #满足条件时,设置单行文本框的文本             self.infoSel.setText(item)                  def onGetText(self):         text,ok=QInputDialog.getText(self,'文本输入对话框','输入姓名:')         if ok:             self.infoTxt.setText(str(text))                  def onGetInt(self):         num,ok=QInputDialog.getInt(self,'整数输入对话框','输入整数')         if ok:             self.infoInt.setText(str(num))                  def onGetDouble(self):         value,ok=QInputDialog.getDouble(self,'浮点数输入对话框','输入浮点数')         if ok:             self.infoDbl.setText(str(value))               if __name__ == '__main__':     app = QApplication(sys.argv)     window = DemoInputDialog()     window.show()     sys.exit(app.exec())

运行结果如下图:

实战PyQt5: 060-输入对话框QInputDialog

测试QInputDialog

本文知识点 在一些简单的输入信息交互场景下使用QInputDialog可提高开发效率;QInputDialog提供了几种常用的信息输入方式;表单QFormLayout的运用;设置按钮的最小宽度,以对齐按钮的排列。

前一篇:  实战PyQt5: 059-颜色对话框QColorDialog



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3